package com.itlong.cloud.operate.dao;

import com.itlong.cloud.POJO.VO.operate.OperateOurThirdPayVO;
import com.itlong.cloud.POJO.VO.operate.OperateThirdPayVO;
import com.itlong.cloud.POJO.VO.property.PropertyProjectAmountVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      运营-财务管理-第三方支付管理数据访问接口。
 * <desc/>
 *
 * @createDate 2018/09/20.
 */
@Mapper
@Repository
public interface IOperateThirdPayDao {

    /**
      * <desc>
      *      分页查询第三方支付列表。
      * <desc/>
      *
      * @param  param
      * @return
      * @author Qiang.S
      * @createDate 2018/09/25
      */
    List<OperateThirdPayVO> getThirdPayInfoPage(Map<String, Object> param);

    /**
     * <desc>
     *      查询微信支付总金额
     * <desc/>
     *
     * @param
     * @return
     * @author Qiang.S
     * @createDate 2018/09/26
     */
    PropertyProjectAmountVO getProjectAmountSum();

     /**
     * <desc>
     *      第三方支付查询总记录数。
     * <desc/>
     *
     * @param  param
     * @return
     * @author Qiang.S
     * @createDate 2018/09/25
     */
    Integer getThirdPayInfoPageCount(Map<String, Object> param);

    /**
     * <desc>
     *      查询第三方支付信息数量
     * <desc/>
     *
     * @param  thirdPartyPayment 第三方支付 1微信支付 2银联支付
     * @return
     * @author Qiang.S
     * @createDate 2018/09/25
     */
    Integer getThirdPayCount(String thirdPartyPayment);

    /**
     * <desc>
     *      新增第三方支付信息
     * <desc/>
     *
     * @param  param
     * @return
     * @author Qiang.S
     * @createDate 2018/09/25
     */
    Integer saveThirdPayInfo(Map<String, Object> param);

    /**
     * <desc>
     *      更新第三方支付信息
     * <desc/>
     *
     * @param  param
     * @return
     * @author Qiang.S
     * @createDate 2018/09/25
     */
    Integer updateThirdPayInfo(Map<String, Object> param);

    /**
     * <desc>
     *      更新物业提现规则设置
     * <desc/>
     *
     * @param  takeHandlingFee 收款手续费
     * @param  payHandlingFee 付款手续费
     * @param  lowAmount 自动提现最小金额
     * @return
     * @author Qiang.S
     * @createDate 2018/09/25
     */
    Integer updateOurPayInfo(@Param("takeHandlingFee") String takeHandlingFee,@Param("payHandlingFee") String payHandlingFee,@Param("lowAmount") String lowAmount);

    /**
     * <desc>
     *      查询第三方支付详细信息
     * <desc/>
     *
     * @param paymentManagementId 支付管理ID 逻辑ID
     * @return
     * @author Qiang.S
     * @createDate 2018-09-25
     */
    OperateThirdPayVO getThirdPayDetail(String paymentManagementId);

    /**
     * <desc>
     *      获取物业提现规则
     * <desc/>
     *
     * @return
     * @author Qiang.S
     * @createDate 2018-09-25
     */
    OperateOurThirdPayVO getOurPayInfo();

    /**
     * <desc>
     *      修改状态
     * <desc/>
     *
     * @param paymentManagementId 支付管理ID
     * @param status 支付管理ID  1正常 2禁用
     * @return
     * @author Qiang.S
     * @createDate 2018-09-20
     */
    Integer updateStatus(@Param("paymentManagementId") String paymentManagementId,@Param("status") String status);

}
